/**

 * 版权所有(C)，上海勾芒信息科技，2017，所有权利保留。
 *
 * 项目名：cards-web 
 * 文件名：:WxCompMaMessageTemplateService.java
 * 模块说明：	
 * 修改历史：
 * 2017年10月16日 - liyang - 创建。
 *
 */
package me.chanjar.weixin.component.api.app;

import java.util.List;

import me.chanjar.weixin.common.exception.WxErrorException;
import me.chanjar.weixin.component.api.app.impl.WxCompMaMessageTemplateServiceImpl.AddTemplateRequest;
import me.chanjar.weixin.component.api.app.impl.WxCompMaMessageTemplateServiceImpl.QueryTemplateTitleResponse;
import me.chanjar.weixin.component.bean.template.Paging;
import me.chanjar.weixin.component.bean.template.WxAppMsgTemplate;
import me.chanjar.weixin.component.bean.template.WxAppMsgTemplateLibKeyword;
import me.chanjar.weixin.component.bean.template.WxAppMsgTemplateLibTitle;

/**
 * @author:liyang
 * @time:2017年10月16日 下午2:00:57
 * @since:1.0
 */
public interface WxCompMaMessageTemplateService {

  /**
   * 获取小程序模板库标题列表
   * 
   * @param page
   *          分页信息
   * @throws WxErrorException
   * 
   * @return List<WxAppMsgTemplateLibTitle>
   */
  QueryTemplateTitleResponse queryTemplateTitleList(Paging page) throws WxErrorException ;

  /**
   * 获取模板库某个模板标题下关键词库
   * 
   * @param templateTitleId
   *          模板标题列表
   * @throws WxErrorException
   * 
   * @return List<WxAppMsgTemplateLibKeyword>
   */
  List<WxAppMsgTemplateLibKeyword> getTemplateTitleKeywordById(String templateTitleId)
      throws WxErrorException;

  /**
   * 组合模板并添加至帐号下的个人模板库
   * 
   * @param req
   *          添加模板参数
   * @throws WxErrorException
   * 
   * @return String
   */
  String addTemplate(AddTemplateRequest req) throws WxErrorException;

  /**
   * 获取帐号下已存在的模板列表
   * 
   * @param page
   *          分页
   * @throws WxErrorException
   * 
   * @return List<WxAppMsgTemplate>
   * 
   */
  List<WxAppMsgTemplate> queryTemplateList(Paging page) throws WxErrorException;

  /**
   * 删除帐号下的某个模板
   * 
   * @param templateId
   *          模板id
   * @throws WxErrorException
   * @return
   */
  void removeTemplate(String templateId) throws WxErrorException;

}
